Lina

Tutoriel - LINA et la communication - 03/2022

7. OPC UA

7.1 Introduction

7.1.1 Les avantages OPC UA

OPC Unified Architecture a été conçu pour la sécurisation des flux de données lors des échanges intra et/ou inter-équipements d’automatisme industriel. Il permet d’échanger de façon sécurisée des données entre le réseau local de l’usine (LAN) et Internet (WAN). La sécurité et le contrôle d’accès se fait au niveau du protocole et de l’application.
C’est un standard ouvert qui peut être implémenté par tout le monde et indépendant des constructeurs. OPC Foundation qui propose des librairies en .NET.
De plus le protocole permet l’utilisation de navigateur permettant d’aller chercher les variables dans l’appareil directement depuis l’application.

7.1.2 Le fonctionnement du protocole

Le protocole OPC-UA adopte une architecture classique dite client-serveur. Une machine utilisant ce protocole possédera un logiciel embarqué, un serveur, qui servira des informations réclamées par un client.

Figure 95 : Exemple architecture client/serveur

7.1.3 Paramétrage serveur

7.1.3.1 L’URL

Pour paramétrer un serveur en OPC UA, il est nécessaire de définir l’URL et l’alias. L’ URL est composé comme suit :
"opc.tcp://" + adresse IP + ":" + n° de port

Exemple URL : opc.tcp://10.25.63.194:4840

7.1.3.2 L’alias

L’alias est un filtre qui limite l’espace d’adressage. Il peut être obtenu sur les documents techniques ou les sites constructeurs.
Exemple alias :

7.1.4 L’espace d’adressage

7.1.4.1 Les nœuds

Les nœuds permettent de faire les liens entre les variables de serveurs différents. Tous les nœuds sont composés d’un nom et d’une description (fixe) ensuite des attributs spécifiques vont varier en fonction du type de nœud. Par exemple pour une variable, la valeur de la variable sera ajoutée au nom et à la description.

Figure 96 : Type de nœud sur UA Expert

D’autres types de nœud existent : Objet, Variable, Méthode, View, Type d’objet, Type de variable, Type de référence et Type de données.

Figure 97 : Type de nœud

Pour les échanges LINA/Automate, nous allons privilégier les types variables.

7.1.4.2 Nœud ID

Tous les nœuds de l’espace d’adressage auront une adresse qui se décompose de la façon suivante :

Figure 98 : Noeud ID sur UA Expert

Le namespace indexe est un identifiant URI. Par exemple la valeur 0 est assignée à l’URI http://opcfoundation.org/UA/.
Les types d’ID : s=string ; i=numérique ; g=GUID

  • Namespace = 2 pour les identifiants string « ns=2;s=MyTemperature »
  • Namespace = 0 pour les identifiants numérique « i=2045 »
  • Namespace = 1 pour les identifiants GUID « ns=1;g=09087e75-8e5e-499b-954f-f2a9603db28a »
  • Namespace = 1 pour les identifiant opaques de type ByteString « ns=1;b=M/RbKBsRVkePCePcx24oRA==' »

7.1.4.3 Les attributs de nœuds

Rappel : Les attributs d’un nœud vont changer en fonction du type de nœud :

Figure 99 : Principaux attributs des nœuds

7.1.5 La sécurité avec OPC UA

7.1.5.1 Les couches de sécurité

Figure 100 : Couche sécurité OPC UA

  • Session : Le client utilisateur doit s’identifier avec un compte et un mot de passe ou par un certificat ;
  • Secure channel : À ce niveau, il est possible de signer et crypter les échanges. La signature se base sur le certificat X509 qui permet d’identifier les applications avec un KPI : Public Key infrastructure. L’algorithme de cryptage est Basic256Sha256 ;
  • Couche socket : Il est possible d’utiliser une connexion orientée et sécurisée SSL ou VPN.

7.1.5.2 Échange de certificat client/serveur

Le traitement des certificats va dépendre du traitement de la partie application.
Un exemple : Le serveur et le client s’échangent leurs certificats. Le serveur envoie son certificat au client et le client envoie le sien au serveur. Le client décide d’accepter automatiquement le certificat du serveur alors que ce dernier va le refuser et attendre une validation manuelle par un utilisateur.

7.2 Référentiel LINA

7.2.1 Serveur

Figure 101 : OPC UA sur référentiel serveurs

Sur la page du référentiel Serveur, il y a deux boutons spécifiques pour OPC UA :

  1. Ce bouton permet d’ouvrir le dossier contenant les certificats OPC UA. Il est alors possible d’en ajouter ou de consulter les certificats disponibles ;
  2. LINA peut générer un certificat client OPC UA pour le serveur LINA. Si besoin, il faudra renseigner ce certificat côté serveur OPC UA.

Figure 102 : LINA configuration serveur OPC UA

Lorsqu’on configure un serveur en OPC UA, il faut renseigner les champs suivants :

  • URL : écrire l’adresse IP du serveur avec le préfixe opc.tcp://
  • Port : Numéro du port renseigné dans l’automate ;
  • Niveau de sécurité : Il doit être choisi en fonction de la sécurité paramétrée sur le serveur :
    • Aucun : pas de sécurité, connexion anonyme ;
    • Signé : il faut renseigner un compte et un mot de passe autorisé sur le serveur ;
    • Encrypté et signé : les échanges serveur/Lina sont cryptés.

Les champs suivants sont principalement utilisés pour KEP :

Figure 103 : Prm LINA serveur OPC UA KEP

7.2.2 Device et surveillance

Après avoir renseigné le serveur, il faut renseigner le device et surveillance.

Figure 104 : LINA alias

Dans l’onglet Général, sous Commentaire, renseignez l’alias.

Figure 105 : Liste des alias

Si votre serveur est déjà déclaré et en communication, vous pouvez cliquer sur les 3 petits points pour ouvrir les alias disponibles.

Figure 106 : Un device par alias

Les alias peuvent changer en fonction des nœuds que vous souhaitez récupérer sur un même automate. Il faut donc renseigner un device par alias.

7.2.3 Mnémoniques

Dans l’onglet Mnémonique, il est possible et recommandé d’ouvrir le navigateur.

Figure 107 : bouton navigateur

À la fin du champ bleu "Adresse", clic "…" .

Figure 108 : Navigateur OPC UA

Dans la boîte de dialogue OPC UA Node, les nœuds sont accessibles sous forme d’arborescence.
Une fois le nœud sélectionné, cliquez sur Valider.

Figure 109 : Adresse OPC UA interface

dans le champ adresse du mnémonique, l’adresse "i=2" est automatiquement saisie.
L'initiale "i" signifie interface serveur.

Figure 110 : Adresse OPC UA string

L’adresse OPC UA commence par "s" signifiant string pour le "DB_PASTO"."TS_Feeding*" .

Figure 111 : NS de l'adresse mnémonique

Lorsque vous déclarez un mnémonique, l’adresse du nœud doit avoir le même NameSpace « NS » que l’alias du device.

Figure 112 : NS sur l'alias du device

⚠ Attention : si vous importez des mnémonique type OPC UA avec l’import des déclarations. Excel ne gère pas bien les guillemets qui sont sur les adresses. Il sera nécessaire d’exécuter une requête sur la base LINA pour corriger l’emplacement des guillemets.
À noter que Bloc note et Notepad ne posent pas de problème.

7.3 Logiciel

7.3.1 UA Expert

UA Expert est un client OPC UA gratuit qui permet d’obtenir certaines informations nécessaires à la configuration d’un autre client.

Figure 113 : Interface UA expert

  1. Liste de serveur OPC UA connectés au client ;
  2. L’espace d’adressage qui permet de parcourir les nœuds sous la forme d’un navigateur ;
  3. Information sur les attributs du nœud sélectionné dans l’espace d’adressage.

7.3.1.1 Configurer un serveur

Figure 114 : Configurer un serveur

Pour configurer un nouveau serveur :

  1. Cliquer sur le petit plus bleu ;
  2. Alternativement, clic droit sur "serveur".

Figure 115 : Add Server

Dans Custom discovery, "Double click to Add Server".
Un pop-up s’ouvre renseigner l’URL. L’ URL est disponible sur l’outil de développement de votre automate lorsque OPC UA est configuré. Votre serveur est configuré. Cliquez sur Rebrowse pour rafraîchir l’espace d’adressage.

Figure 116 : Rebrowse

Pour obtenir le numéro du port sur le serveur, clic droit > Properties.

Figure 117 : accès propriété serveur

Le champ Endpoint Url donne l’adresse IP et le numéro du port.

Figure 118 : Propriété du serveur

7.3.1.2 Les nœuds et leurs attributs

Lorsqu’un nœud est sélectionné dans l’espace d’adresse, les attributs se mettent à jour.

Figure 119 : Attributs et nœuds

Il est également possible de glisser déposer plusieurs tags sur Data Access View. Cette interface permet de visualiser les valeurs de plusieurs tags en direct.

Figure 120 : Propriété d'un nœud

Dans les attributs, nous avons plusieurs informations utiles :

  1. L’identification du nœud. Le namespaceindex correspond au code de l’alias ;
  2. Le champ identifier est utilisé comme adresse sur LINA ;
  3. Le statusCode indique le nœud communique bien. Le champ Value contient la valeur, il est possible de la changer en double cliquant dessus ;
  4. Le type de variable.

7.3.2 Tia portal

Le S7-1200 gère OPC UA mais il est plus restreint que le S7-1500. Il faut déclarer les adresses dans l’interface serveur.
Le S7-1500 peut donner accès aux DB sans passer par l’interface serveur. C’est l’automate Siemens qui gère le mieux OPC UA.

7.3.2.1 Activer le serveur OPC UA

Figure 121 : Activer serveur OPC UA

Dans votre projet :

  1. Allez dans Configuration des appareils > Général > OPC UA > Serveur > Général ;
  2. Cocher la case ☑ Activer Serveur OPC UA.

Vous trouverez plus bas les adresses IP et les numéros de port à transmettre pour la configuration du client OPC UA.

Figure 122 : Adresse et port OPC UA

Pour modifier le n° du port, allez dans Général > Paramètres.

Figure 123 : Modification du numéro de port

7.3.2.2 Les sécurités

Tia Portal peut utiliser les sécurités disponibles avec le protocole OPC UA :

  1. Le certificat ;
  2. L’authentification.

Il est également possible de laisser le serveur libre d’accès.

Pour désactiver la sécurité sur OPC UA :

  1. Allez dans OPC UA > Serveur > Security > Secure channel ;
  2. Cocher la case ☑ Aucune Security.

Lorsque cette coche est activée, les clients peuvent se connecter sans authentification. Cela simplifie la maintenance mais constitue une grosse faille de sécurité.

Pour utiliser le certificat et l’authentification, cette coche ne doit pas être activée.

Figure 124 : Activer l'option aucune sécurité

Note : Ce mode peut être activer lors du développement pour vérifier la connexion entre le serveur et le client. Une fois la connexion vérifiée, il faut désactiver ce mode.

Pour activer les certificats :

  1. Aller dans OPC UA > Serveur > Security > Certificats.

Figure 125 : Activer les certificats

Lister les certificats :

Figure 126 : Liste des certificats

L’authentification par utilisateur permet de restreindre l’accès aux clients disposant d’un compte utilisateur. C’est une sécurité supplémentaire du certificat. Le nom d’utilisateur et le mot de passe sont à renseigner sur le client pour qu’il puisse accéder aux serveur OPC UA de l’automate.
Allez dans OPC UA > Serveur > Security > Authentification de l’utilisateur.
Cocher la case ☑ Activer l’authentification par nom d’utilisateur et mot de passe et décocher la case Activer l’authentification d’invité.

Figure 127 : Authentification client

Ensuite vous pouvez créer des utilisateurs avec des mots de passe à transmettre aux clients OPC UA pour qu’ils puissent se connecter.

7.3.2.3 Interface serveur

L’interface serveur est obligatoire pour les automates S7-1200.

Figure 128 : Activer interface serveur sur Tia

Pour activer l’interface serveur :

  1. Allez dans OPC UA > Serveur > Général ;
  2. Cochez la case ☑ Activer l’interface serveur.

Pour ouvrir l’interface serveur, allez dans Communication OPC UA > Interface serveur.
Ensuite sélectionnez une interface serveur ou créez une interface en cliquant sur Ajouter une nouvelle interface serveur.
Vous pouvez consulter les nœuds déjà existant. Alternativement créer des nouveaux nœuds et des variables locales par la suite sur le bloc de données lié à l’interface serveur.

Figure 129 : Ouvrir l'interface serveur

En cliquant sur Générer les données locales, le pop-up demande dans quel DB générer des variables en lien avec les nœuds.

Figure 130 : Lier l'interface svr à un data bloc

On retrouve ensuite les variables locales en lien avec les nœuds de l’interface serveur dans le DB.

Figure 131 : Data Bloc lié à l'interface serveur